package com.canaan.business.service.storehouse;

import java.util.List;
import com.canaan.business.domain.storehouse.StockCheckDetail;
import com.canaan.business.domain.vo.StockDetailResultVo;

/**
 * 库存盘点任务明细Service接口
 *
 * @author ruoyi
 * @date 2023-02-14
 */
public interface IStockCheckDetailService {
    /**
     * 查询库存盘点任务明细
     *
     * @param id 库存盘点任务明细主键
     * @return 库存盘点任务明细
     */
    StockCheckDetail selectStockCheckDetailById(Long id);

    /**
     * 查询库存盘点任务明细列表
     *
     * @param stockCheckDetail 库存盘点任务明细
     * @return 库存盘点任务明细集合
     */
    List<StockCheckDetail> selectStockCheckDetailList(StockCheckDetail stockCheckDetail);

    /**
     * 新增库存盘点任务明细
     *
     * @param stockCheckDetail 库存盘点任务明细
     * @return 结果
     */
    int insertStockCheckDetail(StockCheckDetail stockCheckDetail);

    /**
     * 批量新增库存盘点任务明细
     *
     * @param stockCheckDetailList 库存盘点任务明细列表
     * @return 结果
     */
    int batchInsertStockCheckDetail(List<StockCheckDetail> stockCheckDetailList);

    /**
     * 修改库存盘点任务明细
     *
     * @param stockCheckDetail 库存盘点任务明细
     * @return 结果
     */
    int updateStockCheckDetail(StockCheckDetail stockCheckDetail);

    /**
     * 批量修改库存盘点任务明细
     *
     * @param stockCheckDetailList 库存盘点任务明细列表
     * @return 结果
     */
    int batchUpdateStockCheckDetail(List<StockCheckDetail> stockCheckDetailList);

    /**
     * 批量删除库存盘点任务明细
     *
     * @param ids 需要删除的库存盘点任务明细主键集合
     * @return 结果
     */
    int deleteStockCheckDetailByIds(Long[] ids);

    /**
     * 删除库存盘点任务明细信息
     *
     * @param id 库存盘点任务明细主键
     * @return 结果
     */
    int deleteStockCheckDetailById(Long id);

    /**
     * 查询库存盘点任务明细
     *
     * @param no 编号
     * @return 库存盘点任务明细
     */
    StockCheckDetail selectStockCheckDetailByNo(String no);

    /**
     * 批量删除库存盘点任务明细
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    int deleteStockCheckDetailByNos(String[] nos);

    /**
     * 删除库存盘点任务明细信息
     *
     * @param no 编号
     * @return 结果
     */
    int deleteStockCheckDetailByNo(String no);

    List<StockCheckDetail> selectStockCheckDetailByCheckNo(String checkNo);

    StockDetailResultVo getResult(Long id);

    int finish(Long id);
}
